cmake_minimum_required(VERSION 3.16)

project(compare LANGUAGES CXX)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core LinguistTools)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core LinguistTools)

set(TS_FILES compare_yue_CN.ts)

add_executable(compare
  main.cpp
  ${TS_FILES}
  cschprocessposition.h cschprocessposition.cpp
  cschdatacollector.h cschdatacollector.cpp
  csysparamdata.h csysparamdata.cpp
  cjgorderprocess.h cjgorderprocess.cpp
  cjgdepandency.h cjgdepandency.cpp
  cjgprocessplan.h cjgprocessplan.cpp
  cjgorder.h cjgorder.cpp
  cjgboxdata.h cjgboxdata.cpp
  cjgboxprocessdata.h cjgboxprocessdata.cpp
  cjgprocessschedule.h cjgprocessschedule.cpp
  cjgboxset.h cjgboxset.cpp
  cjgpositionmanager.h cjgpositionmanager.cpp
  cjgposition.h cjgposition.cpp
  ctechmanager.h ctechmanager.cpp
  cworkertech.h cworkertech.cpp
  ctech.h ctech.cpp
  cprescheduling.h cprescheduling.cpp
  global.h global.cpp
  cordermanager.h cordermanager.cpp
  cholidayset.h cholidayset.cpp
  cworktime.h cworktime.cpp

)
target_link_libraries(compare Qt${QT_VERSION_MAJOR}::Core)

if(COMMAND qt_create_translation)
    qt_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
else()
    qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
endif()

include(GNUInstallDirs)
install(TARGETS compare
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
